
using System;

namespace BeeTest
{
	public class AndGivenState
	{
		#region Field & Properties


		public ReturnGivenState Returns
		{
			get
			{
				return new ReturnGivenState();
			}
		}

		#endregion


		#region Constructors

		public AndGivenState()
		{
		}

		#endregion


		#region Operations

		public GivenState Given(Action givenFunc)
		{
			givenFunc();	
			var state = new GivenState();  
			return state;
		}


		public GivenState Given<TP0>(Action<TP0> givenFunc, TP0 arg0)
		{
			givenFunc(arg0);	
			var state = new GivenState();  
			return state;
		}


		public GivenState Given<TP0, TP1>(Action<TP0, TP1> givenFunc, TP0 arg0, TP1 arg1)
		{
			givenFunc(arg0, arg1);	
			var state = new GivenState();  
			return state;
		}


		public GivenState Given<TP0, TP1, TP2>(Action<TP0, TP1, TP2> givenFunc, TP0 arg0, TP1 arg1, TP2 arg2)
		{
			givenFunc(arg0, arg1, arg2);	
			var state = new GivenState();  
			return state;
		}


		public GivenState Given<TP0, TP1, TP2, TP3>(Action<TP0, TP1, TP2, TP3> givenFunc, TP0 arg0, TP1 arg1, TP2 arg2, TP3 arg3)
		{
			givenFunc(arg0, arg1, arg2, arg3);	
			var state = new GivenState();  
			return state;
		}


		public GivenState Given<TP0, TP1, TP2, TP3, TP4>(Action<TP0, TP1, TP2, TP3, TP4> givenFunc, TP0 arg0, TP1 arg1, TP2 arg2, TP3 arg3, TP4 arg4)
		{
			givenFunc(arg0, arg1, arg2, arg3, arg4);	
			var state = new GivenState();  
			return state;
		}



		#endregion
	}
}

